// 手机号码验证
export const validatePhone = (rule, value, callback) => {
        const patter = new RegExp('^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$')
        if (!patter.test(value)) {
            return callback(new Error('请输入正确格式的手机号！'))
        } else {
            callback() // 必须有此项回调，否则验证会一直不通过
        }
    }
    // 邮箱的正则
export const validateEmail = (rule, value, callback) => {
        const mailbox = new RegExp('^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$')
        if (!mailbox.test(value)) {
            return callback(new Error('请输入正确格式的邮箱！'))
        } else {
            callback()
        }
}
    
    /**
     * @description 判读是否为外链
     * @param path
     * @returns {boolean}
     */
export function isExternal(path) {
    return /^(https?:|mailto:|tel:)/.test(path)
}
/**
 * @description 校验密码是否小于6位
 * @param str
 * @returns {boolean}
 */
export function isPassword(str) {
    return str.length >= 6
}
/**
 * @description 判断是否是字符串
 * @param str
 * @returns {boolean}
 */
export function isString(str) {
    return typeof str === 'string' || str instanceof String
}
/**
 * @description 判断是否是数组
 * @param arg
 * @returns {arg is any[]|boolean}
 */
export function isArray(arg) {
    if (typeof Array.isArray === 'undefined') {
        return Object.prototype.toString.call(arg) === '[object Array]'
    }
    return Array.isArray(arg)
}
/**
 * @author chuzhixin 1204505056@qq.com （不想保留author可删除）
 * @description 判断是否是手机号
 * @param str
 * @returns {boolean}
 */
export function isPhone(str) {
    const reg = /^1\d{10}$/
    return reg.test(str)
}
export default {
    common: {
        // ---------------------公共验证方法
        phone: [{
                // 手机号
                required: true,
                message: "手机号不能为空"
            },
            {
                validator: validatePhone,
                trigger: "blur"
            }
        ],
        fileList: [{ required: true, message: "请上传文件", trigger: "change" }],
        fileNull: [{ required: true, message: "文件不能为空", trigger: "change" }],
        num: [{
            required: true,
            message: "输入内容不能为空",
            trigger: "blur"
        }],
        month: [{
            required: true,
            message: "输入内容不能为空",
            trigger: "change"
        }],
        email: [{
                // 邮箱
                required: true,
                message: "邮箱不能为空",
                trigger: "blur"
            },
            {
                validator: validateEmail,
                trigger: "blur"
            }
        ],
        idCardNo: [{
                // 身份证号码
                required: true,
                message: "身份证号码不能为空"
            }
        ]
    },
    handle: {
        // ---------------------处理表单的验证方法
        operResult: [{
            //处理结果
            required: true,
            message: "请选择处理结果"
        }],
        opinion: [{
            //处理结果描述
            required: true,
            message: "请填写处理结果描述"
        }]
    }
};